package pcsr.simulator.control;

import java.util.Hashtable;

/**
 * Interface to subscribe simulator control changes. 
 * This interfaces establishes the interface with User Interface .
 * @author Paulo Fagundes
 *
 */
public interface ISimulatorStatusObserver {

	/**
	 * Notifies a change in the status of all walls.
	 * @param walls The new state of every wall.
	 */
	void NotifyWallsChange(Hashtable<String, ControlSimulatorWall> walls);
	
	/**
	 * Notifies a change in the status of the robot controller.
	 * @param getRobotStructure The current robot structure.
	 */
	void NotifyRobotChange(ControlSimulatorStructure getRobotStructure);
	
	/**
	 * Notifies a change in the status of all emitters.
	 * @param fieldEmitters
	 */
	void NotifyEmittersChange(Hashtable<String, ControlSimulatorEmitter> fieldEmitters);
}
